package day06;

import java.util.Arrays;
import java.util.Random;

//方法的演示
public class MethodDemo {
    public static void main(String[] args) {
        Random rand = new Random();
        say();//调用say方法
        System.out.println("1123123123");
        say();
        System.out.println(plus(rand.nextInt(100), rand.nextInt(100)));
        say("吴羽", 22);
        System.out.println("看吴羽羽是否输出");
        say("吴羽羽", 100);
        int sum = plus(114, 514);//plus(114,514)是return后的数，将其赋值给sum
        System.out.println(sum);//628，模拟对返回值的后续操作，可以多种操作
        int num1 = 100, num2 = 200;
        int sumNum = plus(num1, num2);
        System.out.println(sumNum);
        int[] arr = generateArray(rand.nextInt(10));//最好新建一个变量存储，否则调用函数中使用的方法不一定生效，比如直接用sort函数排序失效
        System.out.println("数组的长度为：" + arr.length);
//        for (int i = 0; i < arr.length; i++) {
//            System.out.println(arr[i]);
//        }
//        System.out.println(Arrays.toString(arr));
        for (int j : arr) {
            System.out.print(j + "\t");
        }
        System.out.println();
        //生成数组兄弟版本
        System.out.println("~~~~~~~~~~~~~~~~~~~~~~~~~");
        int[] arr1 = generateArray(5, 10);
        for (int i : arr1) {
            System.out.print(i + " ");
        }
        plus();
    }

    protected static void say() {//无参无返回值
        System.out.println("哈哈哈");
    }

    //方法的重载发生在同一个类中，方法名相同，参数列表不相同
    public static void say(String name, int age) {//有参数没有返回值
        if (age >= 60) {//当age大于等于60提前结束方法
            return;//当方法没有返回值的时候，直接return后不接任何返回值结束方法
        }
        System.out.println("名字：" + name + "\t年龄：" + age);
    }

    private static int plus(int a, int b) {//有参数有返回值
        return a + b;//类型匹配,返回的是a与b的和
    }

    static void plus() {
        System.out.println("nio");
    }

    public static int[] generateArray(int len) {
        Random rand = new Random();
        int[] arr = new int[len];
        for (int i = 0; i < arr.length; ++i) {
            arr[i] = rand.nextInt(100);
        }
        Arrays.sort(arr);
        return arr;
    }

    public static int[] generateArray(int len, int max) {
        Random rand = new Random();
        int[] arr = new int[len];
        for (int i = 0; i < arr.length; ++i) {
            arr[i] = rand.nextInt(max + 1);
        }
        Arrays.sort(arr);
        return arr;
    }
}
